Most computer systems use a form of raster image to display image data on an output device such as a cathode ray tube (CRT) monitor, liquid crystal display (LCD), or a printing device such as a color laser copier. A raster image is represented as a series of scan lines of pixels, wherein pixels are accessed, and each scan line is processed sequentially by the output device. Raster image data is produced by a process called rendering, and typically is stored in a memory device called a frame buffer, which may be accessed by the output device. A frame buffer typically is large enough to store image data that represents a "page," which corresponds to a printed or displayed page of data. A document may be composed of several pages.
A document typically may be defined using a page description language. Page description languages, such as the POSTSCRIPT language produced by Adobe Systems, Inc., provide commands similar to a programming language which may be used to describe the visual representation of a page. A page description language describes the appearance of text, graphical shapes, and sampled images in a page to be displayed on an output device. A document written in a page description language such as the POSTSCRIPT language may be used to communicate the description of pages of the document from a composition system such as a word processor on a computer, to a display system such as a laser printer. To display or print the document, the page description language is interpreted by an interpreter, or may be compiled or translated, and is then rendered into image data.
Interpreters of page description languages typically process images in one of two modes: band mode and frame mode. In band mode, the entire page description is interpreted, and a list of every imaging operation, called a display list, is built including all the data needed to image the page. The rendering device renders the display list after the display list is fully created. A display list can grow to be very large. A large display list must be stored temporarily on secondary storage, i.e., is swapped from main memory, which requires repeated extra processing steps to both read from and write to the display list. Then, during rendering of the display list to create bands of image data for the output device, swapping also may occur which further reduces performance.
In frame mode, on the other hand, a display list is not constructed. Instead, a full page image exists, and each imaging operation is immediately processed as it is encountered to update the full page image. Whereas a band mode processor traverses the output page image in an orderly fashion, sweeping from one edge to the opposite edge, a frame mode processor accesses the output page randomly. If this full page image does not fit in primary memory, frame mode processing may require swapping as the full page image is randomly accessed. Similarly, if the full page image is partially compressed, frame mode processing may require repeated decompression and compression of portions of the full page image as it is randomly accessed. Either of these possibilities significantly decreases processing throughput.